package com.example.springboottest153.util;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Vector;

public class MapUtil {


    // Vector 多线程安全的集合  但是上了锁效率慢一点
    /**
     *  根据key模糊查询    把map 集合中符合的 T 取出来作为集合
     *  */
    public static <T>List<T> getKeyLikeFromMap(Map<String, T> map, String keyLike){

        List<T> list=new Vector<T>();      // Vector 多线程安全的集合
        for (Map.Entry<String, T> entity : map.entrySet()) {
            if(entity.getKey().contains(keyLike)){
                list.add((T) entity.getValue());
            }
        }
        return list;
    }


    /**
     * 把map 集合 中的 T 取出来作为集合
     *
     * */

    public static <T> List<T> getKeyLikeFromMap(Map<String, T> map) {

        List<T> list = new Vector<T>();

        for (Map.Entry<String, T> entity : map.entrySet()) {

            list.add((T) entity.getValue());
        }
        return list;
    }

    // 使用 ArrayList()  线程不安全  但是效率高  没有线程安全的时候可以使用
    /**
     *  根据key模糊查询    把map 集合中符合的 T 取出来作为集合
     *  */
    public static <T>List<T> getKeyLikeFromMap2(Map<String, T> map, String keyLike){

        List<T> list=new ArrayList<T>();      // Vector 多线程安全的集合
        for (Map.Entry<String, T> entity : map.entrySet()) {
            if(entity.getKey().contains(keyLike)){
                list.add((T) entity.getValue());
            }
        }
        return list;
    }


    /**
     * 把map 集合 中的 T 取出来作为集合
     *
     * */
    public static <T> List<T> getKeyLikeFromMap2(Map<String, T> map) {

        List<T> list = new ArrayList<T>();

        for (Map.Entry<String, T> entity : map.entrySet()) {

            list.add((T) entity.getValue());
        }
        return list;
    }

}
